package com.hua.base;

public class Dog {
    String name;
    Dog(String name){
        this.name = name;
    }
    String getName(){
        return this.name;
    }


    void setName(String name    ){
        this.name = name;
    }
    String getObjectAdress(){
        return super.toString();
    }

    public static void main(String[] args) {
        Dog dog = new Dog("A");
        System.out.println(dog.getObjectAdress());
        func(dog);
        System.out.println(dog.getObjectAdress());
        System.out.println(dog.getName()); //B  ,在方法中改变对象的字段值会改变原对象该字段值，因为引用的是同一个对象。
    }
    private static void func(Dog dog){
        System.out.println(dog.getObjectAdress());
        dog.setName("B");
        dog = new Dog("C");
        System.out.println(dog.getObjectAdress());// 但是在方法中将指针引用了其它对象，那么此时方法里和方法外的两个指针指向了不同的对象，在一个指针改变其所指向对象的内容对另一个指针所指向的对象没有影响。
        System.out.println(dog.getName());
    }
}
